home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection Student Program / ADC Tools Sampler CD Disk 3 1999.iso / Cool Demos, SDKs, & Tools / Demos⁄Tools⁄Offers / Eiffel for CW beta 3 / EiffelS2 / LIBRARY / MOTEL / Resources.c < prev    next >
C/C++ Source or Header  |  1999-04-26  |  5KB  |  220 lines

  1. /*------------------------------------------------------------------*/
  2. /* Eiffel/S II MacOS Runtime                                         */
  3. /*------------------------------------------------------------------*/
  4. /* Author    : Ian Joyner                                               */
  5. /* Release   : 1.0                                                  */
  6. /* Date      : Dec. 1997                                            */
  7. /* Copyright : Ian Joyner                                            */
  8. /*------------------------------------------------------------------*/
  9. /********************************************************************/
  10. /*                                                                    */
  11. /*                            RESOURCESs                                */
  12. /*                                                                    */
  13. /********************************************************************/
  14.  
  15. #include <Resources.h>
  16. #include <Eiffel2.h>
  17. #include "MOTEL.h"
  18.  
  19. INTEGER platform_resource_current_file ()
  20. {
  21.     return CurResFile ();
  22. }
  23.  
  24. void platform_resource_set_file (INTEGER ref_num)
  25. {
  26.     UseResFile (ref_num);
  27. }
  28.  
  29. INTEGER platform_resource_home_file (Handle res)
  30. {
  31.     return HomeResFile (res);
  32. }
  33.  
  34. INTEGER platform_resource_count_types (BOOLEAN b)
  35. {
  36.     return (b)? Count1Types () : CountTypes ();
  37. }
  38.  
  39. INTEGER platform_resource_count_resources (ResType t, BOOLEAN b)
  40. {
  41.     return (b)? Count1Resources (t) : CountResources (t);
  42. }
  43.  
  44. void platform_resource_file_create (INTEGER v_ref_num, INTEGER parID,
  45.                                     ConstStr255Param name,
  46.                                     ConstStr255Param creator,
  47.                                     ConstStr255Param type,
  48.                                     INTEGER script_tag)
  49. {
  50.     FSSpec fs;
  51.     
  52.     union
  53.     {
  54.         ResType r;
  55.         char c [4];
  56.     } ct;
  57.     
  58.     union
  59.     {
  60.         ResType r;
  61.         char c [4];
  62.     } ty;
  63.     
  64.     fs.vRefNum = v_ref_num;
  65.     fs.parID = parID;
  66.     strcpy (fs.name, name);
  67.     
  68.     ct.c [0] = creator [0];  ct.c [1] = creator [1];  ct.c [2] = creator [2];  ct.c [3] = creator [3];
  69.     ty.c [0] = type [0];  ty.c [1] = type [1];  ty.c [2] = type [2];  ty.c [3] = type [3];
  70.     
  71.     FSpCreateResFile (&fs, ct.r, ty.r, script_tag);
  72. }
  73.  
  74. INTEGER platform_resource_file_open (INTEGER v_ref_num, INTEGER parID,
  75.                                      POINTER name, CHARACTER permission)
  76. {
  77.     FSSpec fs;
  78.     
  79.     fs.vRefNum = v_ref_num;
  80.     fs.parID = parID;
  81.     strcpy (fs.name, name);
  82.     
  83.     return FSpOpenResFile (&fs, permission);
  84. }
  85.  
  86. INTEGER platform_resource_error ()
  87. {
  88.     return ResError ();
  89. }
  90.  
  91. INTEGER platform_resource_file_attributes (INTEGER ref_num)
  92. {
  93.     return GetResFileAttrs (ref_num);
  94. }
  95.  
  96. void platform_resource_file_set_attributes (INTEGER ref_num, INTEGER new_attributes)
  97. {
  98.     SetResFileAttrs (ref_num, new_attributes);
  99. }
  100.  
  101. void platform_resource_file_update (INTEGER ref_num)
  102. {
  103.     UpdateResFile (ref_num);
  104. }
  105.  
  106. void platform_resource_file_close (INTEGER ref_num)
  107. {
  108.     CloseResFile (ref_num);
  109. }
  110.  
  111. ResType platform_resource_type (ConstStr255Param t)
  112. {
  113.     union
  114.     {
  115.         ResType r;
  116.         char c [4];
  117.     } ct;
  118.     
  119.     ct.c [0] = t [0];  ct.c [1] = t [1];  ct.c [2] = t [2];  ct.c [3] = t [3];
  120.     
  121.     return ct.r;
  122. }
  123.  
  124. Handle platform_resource_get (ResType t, INTEGER id, BOOLEAN b, BOOLEAN ROM)
  125. {
  126.     if (ROM)
  127.         return RGetResource (t, id);
  128.     else
  129.         return (b)? Get1Resource (t, id) : GetResource (t, id);
  130. }
  131.  
  132. Handle platform_resource_get_by_name (ResType t, ConstStr255Param n, BOOLEAN b)
  133. {
  134.     Str255 scratch;
  135.     
  136.     strcpy (scratch, n);
  137.     c2pstr ((char *)scratch); /* This might not be right if string is loaded from a resource */
  138.  
  139.     return (b)?  Get1NamedResource (t, scratch) : GetNamedResource (t, scratch);
  140. }
  141.  
  142. Handle platform_resource_get_by_index (ResType t, INTEGER ix, BOOLEAN b)
  143. {
  144.     return (b)? Get1IndResource (t, ix) : GetIndResource (t, ix);
  145. }
  146.  
  147. ResType platform_resource_get_type_by_index (INTEGER ix, BOOLEAN b)
  148. {
  149.     ResType t;
  150.     
  151.     if (b)
  152.         Get1IndType (&t, ix);
  153.     else
  154.         GetIndType (&t, ix);
  155. }
  156.  
  157. INTEGER platform_resource_get_id (Handle rh)
  158. {
  159.     short the_id;
  160.     int the_type;
  161.     
  162.     GetResInfo (rh, &the_id, &the_type, &scratch_string);
  163.     
  164.     return the_id;
  165. }
  166.  
  167. POINTER platform_resource_get_name (Handle rh)
  168. {
  169.     short the_id;
  170.     int the_type;
  171.     
  172.     GetResInfo (rh, &the_id, &the_type, &scratch_string);
  173.     
  174.     return &scratch_string;
  175. }
  176.  
  177. void platform_resource_set_info (Handle rh, INTEGER id, ConstStr255Param name)
  178. {
  179.     strcpy (scratch_string, name);
  180.     c2pstr ((char *)scratch_string); /* This might not be right if string is loaded from a resource */
  181.  
  182.     SetResInfo (rh, id, scratch_string);
  183. }
  184.  
  185. INTEGER platform_resource_get_attributes (Handle rh)
  186. {
  187.     return GetResAttrs (rh);
  188. }
  189.  
  190. void platform_resource_set_attributes (Handle rh, INTEGER attrs)
  191. {
  192.     SetResAttrs (rh, attrs);
  193. }
  194.  
  195. INTEGER platform_resource_unique_id (ResType t, BOOLEAN b)
  196. {
  197.     return (b)? Unique1ID (t) : UniqueID (t);
  198. }
  199. /*
  200. void platform_resource_load (Handle rh)
  201. {
  202.     LoadResource (rh);
  203. }
  204.  
  205. void platform_resource_changed (Handle rh)
  206. {
  207.     ChangedResource (rh);
  208. }
  209.  
  210. void platform_resource_write (Handle rh)
  211. {
  212.     WriteResource (rh);
  213. }
  214.  
  215. void platform_resource_release (Handle rh)
  216. {
  217.     ReleaseResource (rh);
  218. }
  219. */
  220.